#include "snake_hall.h"
#include "ui_snake_hall.h"
#include <QIcon>
#include <QPainter>
#include <QPushButton>
#include "snake_select.h"
#include <QSound>

Snake_hall::Snake_hall(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Snake_hall)
{
    ui->setupUi(this);
    //设置窗口信息和大小
    this->setWindowTitle("贪吃蛇小游戏");
    this->setWindowIcon(QIcon(":/res/35.png"));
    this->setGeometry(800,400,1200,900);

    //创建“开始游戏按钮”，并设置其字体、内容
    QPushButton* button_hall=new QPushButton(this);
    button_hall->move(470,620);
    button_hall->setText("开始游戏");
    QFont font("华文行楷",30);
    button_hall->setFont(font);

    //提前新建一个新界面
    Snake_select* select=new Snake_select;
    //为按钮设置槽函数
    //按下按钮后跳转页面
    connect(button_hall,&QPushButton::clicked,this,[=](){
        //关闭当前页面
        this->close();
        //让选择界面和开始界面的大小位置一样
        select->setGeometry(this->geometry());
        //显示选择界面
        select->show();
        //为按钮添加按下声音
        //直接用QSound的静态函数play即可
        QSound::play(":/res/clicked.wav");
    });

}

Snake_hall::~Snake_hall()
{
    delete ui;
}

//重写绘图事件
void Snake_hall::paintEvent(QPaintEvent *event)
{
    (void)event;
    //创建一个临时“画家“
    //这个“画家”要绑定在this对象树上，这样才能给this对象树绘制
    QPainter painter(this);

    //创建绘图工具（QPixmap对象）
    //QPainter对象可以使用QPixmap对象来绘制窗口
    QPixmap pixmap(":/res/game_hall.png");

    //用绘图工具绘制窗口
    painter.drawPixmap(0,0,this->width(),this->height(),pixmap);
}

